using UnityEngine;

public class HitState : IState
{
    public HitState(FSM manager)
    {
        this.manager = manager;
        this.parameter = manager.parameter;
    }

    public override void OnEnter()
    {
        parameter.animator.Play("Hit");
        parameter.health--;    // 减少角色生命值
    }

    public override void OnUpdate()
    {
        // 如果角色生命值小于等于0，转换到死亡状态
        if (parameter.health <= 0)
        {
            manager.TransitionState(StateType.Death);
        }

        // 如果动画播放进度超过95%，重新寻找玩家目标并转换到追逐状态
        if (parameter.animatorStateInfo.normalizedTime >= 0.95f)
        {
            parameter.target = GameObject.FindWithTag("Player").transform;    // 寻找标签为Player的目标

            manager.TransitionState(StateType.Chase);    // 转换到追逐状态
        }
    }

    public override void OnFixedUpdate()
    {

    }

    public override void OnExit()
    {
        parameter.getHit = false;    // 离开状态时重置受击标志
    }
}
